function isFunctionBodyEmpty(func) {
    /*
?   [^]* ：这部分表示匹配除了换行符之外的任意字符。 ^  表示取反， *  表示匹配零个或多个字符。
?   \{ ：这部分表示匹配左花括号  {  字符。
?   ([\s\S]*) ：这部分表示匹配任意空白字符或非空白字符的零个或多个字符。 [\s\S]  表示匹配任意字符，包括换行符和空格。
?   \} ：这部分表示匹配右花括号  }  字符。
?   ([1]) ：这部分使用括号捕获匹配的内容，我们只关心函数体部分，所以使用  [1]  来提取捕获组中的内容。
     */
    const body = func.toString().match(/[^]*\{([\s\S]*)\}$/)[1];
    const trimmedBody = body.trim();
    return trimmedBody === '';
}
//? 示例用法：
function emptyFunction() {}
function nonEmptyFunction() {
    console.log("This function is not empty.");
}
console.log(isFunctionBodyEmpty(emptyFunction)); //? 输出 true
console.log(isFunctionBodyEmpty(nonEmptyFunction)); //? 输出 false

//? 方法2 正则只检测以}结尾 将空白字符，包括空格、制表符、换行符等均替换为空字符 用于判断是否为空
console.log(/\{\}$/.test(emptyFunction.toString().replace(/\s/g, ''))); //? true
console.log(/\{\}$/.test(nonEmptyFunction.toString().replace(/\s/g, ''))); //? false
console.log(nonEmptyFunction.toString().replace(/\s/g, '')) //? functionnonEmptyFunction(){console.log("Thisfunctionisnotempty.");}
